For cost efficiency, most people opt to purchase a computer that has sufficient processing power and memory resources to perform routine tasks. Such purchase, while affordable, may not however fully satisfy the computing needs of the purchaser. That is, the computer may not be sufficiently equipped to perform highly resource intensive tasks, resulting in user dissatisfaction and frustration.
Computing resources may be extended by, for example, connecting a local computer to a peer-to-peer computing grid, where a group of computers collaborate to perform certain tasks. Peer computers must support a similar operating environment (e.g., the same operating system and software platform) for the collaboration to be successful. An additional requirement is typically the enforcement a reciprocal relationship among the peers for sharing resources.
An alternative to the above approach is the use of virtually implemented computing platforms, also referred to as cloud computing. Examples of cloud computing services include: Hardware as a Service (HaaS), Infrastructure as a Service (IaaS) and Software as a Service (SaaS). In cloud computing, specific tasks or services are fully outsourced to so-called virtual machines (VMs) running on host system that are remotely accessible over a communications network.
The solutions noted above require continuous network connectivity between a local computer and the remote hosts and generally result in heavy network traffic until a task is completed. In case of deliberate or inadvertent disconnection between the local computer and the remote host, there may be a loss in the computed results unless the host takes over the responsibility of managing the computing tasks and reporting the results back to the local computer once connection is reestablished.
The connectivity and interaction between the local computer and remote machines is generally not seamless or transparent and may involve the compilation and linkage of software suits with proprietary code libraries that are typically incompatible across various computing platforms. Further, there may be requirements for a local computer to logon to different remote host machines to run different tasks causing inconvenience to a user.